package juego.objetos;


import javax.swing.ImageIcon;

import juego.entidad.Posicion;
import juego.graficos.ElementoGrafico;
import juego.main.SoundPlayer;
import juego.niveles.generator.Nivel;
import juego.personaje.mario.Mario;
import juego.powerUps.Moneda;

/**
 * Modela una piedra irrompible con .
 * @author Latini Macarena.
 * @author Rosas Tifany.
 *
 */
public class PiedraIrrompibleInterrogacion extends PiedraIrrompible{
	
	protected Moneda moneda; 
	
	/**
	 * Constructor
	 * @param p Posicion de la piedra.
	 * @param n Nivel al que pertenece.
	 */
	public PiedraIrrompibleInterrogacion(Posicion p, Nivel n) {
		super(p, n);
		moneda=new Moneda(pos, nivel);
		moneda.setPiedra(this);
		ElementoGrafico eg= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/entidades/coin.gif")));
		moneda.setGrafico(eg);
		
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * Metodo vacio, dado que cuando mario colisiona con
	 * una piedra irrompible no debe suceder nada a nivel juego.
	 */
	public void colision(Mario m)
	{
			
	}

	/**
	 * Elimina la moneda asociada a la piedra
	 */
	public void eliminarMoneda()
	{
		moneda=null;
	}
	
	//Mario esta arriba del objeto
	/**
	 * Metodo vacio dado que cuando se produce una colision por arriba
	 * no ocurre nada para este caso.
	 */
	public void colisionPorArriba(Mario m) {
		// TODO Auto-generated method stub
	}
	
	/**
	 * Retorna la moneda asociada a la piedra.
	 * @return Moneda moneda asociada.
	 */
	public Moneda obtenerMoneda()
	{
		return moneda;
	}

	/**
	 * Metodo que modela una colision de Mario (por abajo) con la piedra.
	 */
	public void colisionPorAbajo(Mario m)
	{
		
		ElementoGrafico eg=moneda.getGrafico();
		if(!eg.isVisible())
		{
			eg.setVisible(true);
			int x=eg.getLocation().x;
			int y=eg.getLocation().y;
			eg.setLocation(x, y-32);
			SoundPlayer s= new SoundPlayer("/juego/musica/coin.mp3");
			s.play();
		}
		m.modificarPuntaje(moneda.obtenerPremio());
		m.obtenerMain().obtenerEtiquetaPuntaje().setText("SCORE "+m.obtenerPuntaje());
		moneda.getGrafico().setVisible(false);
		moneda=null;
		ElementoGrafico g=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/bloques/xbrickpng.gif")));
		this.cambiarGrafico(g);
		
	}

}
